A hard disk consumes a lot of power when it spins up. The initial power surge is due to the crowbar current of the hard disk motor that spins the internal platter. This crowbar current can be as large as 10 times the normal operating current used to maintain the platter spinning, move the read/write head and power the control electronics. The length of time the hard disk drive spins up and the amount of additional power consumed is vendor specific. Table 1 below shows power consumption data for a particular SATA disk drive (Seagate ST3160021A), as an example.
TABLE 1Average5 V typ12 V typPower Dissipation (Watts)(watts, 25° C.)ampsampsSpinup——2.8 (peak)Idle7.50.4820.424Idle* (with offline activity)9.30.5870.530Operating 40% r/w, 40% seek, 12.00.6380.73920% inop.Seeking12.50.4120.870Standby0.9000.1440.015Sleep0.9000.1440.015
In order to reduce the maximum current demand on the power supply and enable use of lower-cost power supply designs, staggered spin-up is designed to sequentially spin up disk drives upon enclosure power up. This is important, as power supplies are a significant cost when implementing arrays of hard disks. If the power supply were sized to handle simultaneous crowbar current of all the hard disks in the array, it would only be stressed during the initial power-on event. By reducing the power supply capability to handle the nominal power requirements with some margin to handle a small number of crowbar currents, the system cost is greatly reduced.
For a SAS (Serial Attached SCSI)/SATA (Serial ATA) disk array, expander devices are part of a service delivery subsystem and facilitate communication between multiple SAS devices. The SAS hard disk normally does not spin up its platter until a NOTIFY (ENABLE SPINUP) is received. SAS initiator devices and expander devices send NOTIFY (ENABLE SPINUP) while attached to a SAS device. The expander transmits one NOTIFY (ENABLE SPINUP) after power on when the enclosure is ready for initial spin-up.
SAS expanders control the spin-up of SATA devices in a different fashion, as SATA devices do not contain a power condition state machine similar to SAS. The only method to prevent the spin-up of a SATA device is to not successfully complete speed negotiation of the physical link. That is, the speed negotiation does not progress past the COMWAKE event of the normal SATA speed negotiation sequence. The SATA drive is in SATA SPINUP HOLD state. Normally, the spin-up of SATA disks is permitted by a host within the SAS topology by the SAS management protocol (SMP) target within the SAS expander. Specifically, a host uses the expander SMP control to reset the serial link connected to the SATA drive to allow speed negotiation to complete. At this point, the SATA drive exits the SATA HOLD state and starts to spin-up the drive.
Expander firmware provides staggered spin up control for both SAS and SATA drives at booting up stage. However, the above method cannot be used to control the potential simultaneous disk spin up when the multiple STANDBY disks accept I/O requests from a host at the same time slot. A disk is not in STANDBY mode before initial boot up or power up. A disk can be put in STANDBY mode by firmware or software to save power.
A disk in STANDBY mode will start to spin up once it receives an access command. If there are multiple disks in standby mode and they are accessed simultaneously, a spin up issue arises which will overload the system power supply if there is no mechanism available to deal with this. The condition would become even more serious due to the trend of density and green (energy saving) requests for a storage system.
If there are multiple disks in standby mode and they are accessed simultaneously later in a disk array system, spin up issues arise which will overload the system power supply. There are two methods to put the disks into STANDBY mode and bring them out of that mode.
A first method is a system software approach involving a host system which is external to the disk array. There can be many hosts that share the same disk array. Host system software detects disk activities by a host driver and puts a disk into STANDBY mode by issuing a SCSI START STOP UNIT command to SAS drives, or an ATA STANDBY IMMEDIATE command to SATA disks. When there are READ/WRITE requests needed to be issued to hard drive, the host system software needs to coordinate the access sequence and perform the spin up control.
However, there are many drawbacks with this method.
a. In this approach, the system software needs to know many details about the disk array system. For example, software needs to understand how many drives are allowed to spin up simultaneously, which drive is in which enclosures, etc. This approach works in a DAS (Direct Attached Storage) environment as storage is directly attached to the host, however is not suitable for a SAN (Storage Area Network) environment.
b. The drawback above can also cause an interoperability issue when there are multi-vendor disk arrays. In a data center, there can be storage systems from various vendors. With virtualization technology, some storage subsystems can even be connected to a virtualized engine from another vendor.
c. This method cannot work reliably in a SAN environment, which would normally involve multiple disk arrays, multiple hosts, multiple RAID heads, or many disk arrays without a RAID head, etc.
d. Things would become worse when there are disk drives that need to be hot plugged when STANDBY disks begin to spin up, as spin up of hot plugged disks is controlled by expander firmware, not by host software.
Existing approaches do not address the problem of disk spin up after STANDBY mode in a disk array by expander device. Moreover, such known approaches use resources that are external to the disk array enclosure, thus requiring detailed knowledge of the system.
It is, therefore, desirable to provide a disk spin up control approach that can be implemented within a disk array enclosure.